Data can be corrupted when stored to and/or read from a storage device, or transmitted over an unreliable channel. For example, data can become corrupted when it is stored to a magnetic hard drive. Without a mechanism to detect when data has been corrupted and/or correct the corruption, the data can be unusable. Error correction coding, in some applications, can be used to facilitate reliable storage and retrieval of data, and/or delivery of data. In general, the concept behind error correction coding is that by adding redundancy to the data, the redundancy can permit correcting corruption in the data. Some approaches to error correction coding can be referred to as systematic. A systematic error correction coding approach generally involves providing the data and some amount of check bits, parity bits, error correction codes, or other data generated based on the data to facilitate recovery from corruption.